package org.sdp.pearproject.dao.domain;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * InterfaceName: ProjectExample
 * @Description:
 * @Author: SDP
 * @Date: 2022-07-08
 * @Version: 1.0
 * Table: pear_project
 * Comment:
 * 项目表
 */
public class ProjectExample extends BaseExample {
    protected Integer limitClause;

    protected Integer countClause;

    protected Integer topClause;

    protected CriteriaString setNull;

    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProjectExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setLimitClause(Integer limitClause) {
        this.limitClause = limitClause;
    }

    public Integer getLimitClause() {
        return limitClause;
    }

    public void setCountClause(Integer countClause) {
        this.countClause = countClause;
    }

    public Integer getCountClause() {
        return countClause;
    }

    public void setTopClause(Integer topClause) {
        this.topClause = topClause;
    }

    public Integer getTopClause() {
        return topClause;
    }

    public CriteriaString getSetNull() {
        return setNull;
    }

    public void setSetNull(CriteriaString setNull) {
        this.setNull = setNull;
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public static ProjectExample createExample(Project request) throws Exception {
        return createExample(request, null);
    }

    public static ProjectExample createExample(Project request, JSONObject options) throws Exception {
        ProjectExample example = new ProjectExample();
        ProjectExample.Criteria criteria = example.createCriteria();

        example.fixExample(Project.class, CriteriaString.class, criteria, options);

        example.fixExample("EqualTo", 1, request, criteria);        

        if (options != null) {
            String orderBy = "";
            if (options.containsKey("order_by")) {
                orderBy = setCriteriaOrderBy(options.getJSONArray("order_by"), example);
                if (orderBy.length() > 0) {
                    example.setOrderByClause(orderBy);
                }
            }
        }

        return example;
    }

    private static String setCriteriaOrderBy(JSONArray jsonArray, ProjectExample example) throws Exception {
        List<Object> request = Criterion.toList(jsonArray, CriteriaString.class);
        StringBuilder sb = new StringBuilder();
        int count = 0;
        for(int i = 0; i < request.size(); i++) {
            Object criteriaOrderByObj  = request.get(i);
            CriteriaString criteriaOrderBy = (CriteriaString)criteriaOrderByObj;
            int subCount = 0;

            subCount += appendCriteriaOrderByItem(sb, "id", criteriaOrderBy.getId());
            subCount += appendCriteriaOrderByItem(sb, "cover", criteriaOrderBy.getCover());
            subCount += appendCriteriaOrderByItem(sb, "`name`", criteriaOrderBy.getName());
            subCount += appendCriteriaOrderByItem(sb, "code", criteriaOrderBy.getCode());
            subCount += appendCriteriaOrderByItem(sb, "access_control_type", criteriaOrderBy.getAccessControlType());
            subCount += appendCriteriaOrderByItem(sb, "white_list", criteriaOrderBy.getWhiteList());
            subCount += appendCriteriaOrderByItem(sb, "`order`", criteriaOrderBy.getOrder());
            subCount += appendCriteriaOrderByItem(sb, "deleted", criteriaOrderBy.getDeleted());
            subCount += appendCriteriaOrderByItem(sb, "template_code", criteriaOrderBy.getTemplateCode());
            subCount += appendCriteriaOrderByItem(sb, "schedule", criteriaOrderBy.getSchedule());
            subCount += appendCriteriaOrderByItem(sb, "create_time", criteriaOrderBy.getCreateTime());
            subCount += appendCriteriaOrderByItem(sb, "organization_code", criteriaOrderBy.getOrganizationCode());
            subCount += appendCriteriaOrderByItem(sb, "deleted_time", criteriaOrderBy.getDeletedTime());
            subCount += appendCriteriaOrderByItem(sb, "private", criteriaOrderBy.getPrivate());
            subCount += appendCriteriaOrderByItem(sb, "`prefix`", criteriaOrderBy.getPrefix());
            subCount += appendCriteriaOrderByItem(sb, "open_prefix", criteriaOrderBy.getOpenPrefix());
            subCount += appendCriteriaOrderByItem(sb, "archive", criteriaOrderBy.getArchive());
            subCount += appendCriteriaOrderByItem(sb, "archive_time", criteriaOrderBy.getArchiveTime());
            subCount += appendCriteriaOrderByItem(sb, "open_begin_time", criteriaOrderBy.getOpenBeginTime());
            subCount += appendCriteriaOrderByItem(sb, "open_task_private", criteriaOrderBy.getOpenTaskPrivate());
            subCount += appendCriteriaOrderByItem(sb, "task_board_theme", criteriaOrderBy.getTaskBoardTheme());
            subCount += appendCriteriaOrderByItem(sb, "begin_time", criteriaOrderBy.getBeginTime());
            subCount += appendCriteriaOrderByItem(sb, "end_time", criteriaOrderBy.getEndTime());
            subCount += appendCriteriaOrderByItem(sb, "auto_update_schedule", criteriaOrderBy.getAutoUpdateSchedule());
            subCount += appendCriteriaOrderByItem(sb, "description", criteriaOrderBy.getDescription());
            if (subCount > 1) {
                throw new Exception("order by数组元素对象属性多于1个(ProjectExample):"+count+","+JSON.toJSONString(jsonArray.get(i)));
            }
            if (subCount == 0 && !"{}".equals(JSON.toJSONString(jsonArray.get(i)))) {
                throw new Exception("存在非法order by 字段(ProjectExample):"+count+","+JSON.toJSONString(jsonArray.get(i)));
            }
            count++;
        }
        if (sb.length() == 0) {
            appendCriteriaOrderByItem(sb, "1", "");
        }

        return sb.toString();
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCoverIsNull() {
            addCriterion("cover is null");
            return (Criteria) this;
        }

        public Criteria andCoverIsNotNull() {
            addCriterion("cover is not null");
            return (Criteria) this;
        }

        public Criteria andCoverEqualTo(String value) {
            addCriterion("cover =", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverNotEqualTo(String value) {
            addCriterion("cover <>", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverGreaterThan(String value) {
            addCriterion("cover >", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverGreaterThanOrEqualTo(String value) {
            addCriterion("cover >=", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverLessThan(String value) {
            addCriterion("cover <", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverLessThanOrEqualTo(String value) {
            addCriterion("cover <=", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverRegexp(String value) {
            addCriterion("cover regexp", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverLike(String value) {
            addCriterion("cover like", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverNotLike(String value) {
            addCriterion("cover not like", value, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverIn(List<String> values) {
            addCriterion("cover in", values, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverNotIn(List<String> values) {
            addCriterion("cover not in", values, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverBetween(String value1, String value2) {
            addCriterion("cover between", value1, value2, "cover");
            return (Criteria) this;
        }

        public Criteria andCoverNotBetween(String value1, String value2) {
            addCriterion("cover not between", value1, value2, "cover");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("`name` is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("`name` is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("`name` =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("`name` <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("`name` >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("`name` >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("`name` <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("`name` <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameRegexp(String value) {
            addCriterion("`name` regexp", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("`name` like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("`name` not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("`name` in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("`name` not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("`name` between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("`name` not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andCodeIsNull() {
            addCriterion("code is null");
            return (Criteria) this;
        }

        public Criteria andCodeIsNotNull() {
            addCriterion("code is not null");
            return (Criteria) this;
        }

        public Criteria andCodeEqualTo(String value) {
            addCriterion("code =", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotEqualTo(String value) {
            addCriterion("code <>", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThan(String value) {
            addCriterion("code >", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeGreaterThanOrEqualTo(String value) {
            addCriterion("code >=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThan(String value) {
            addCriterion("code <", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLessThanOrEqualTo(String value) {
            addCriterion("code <=", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeRegexp(String value) {
            addCriterion("code regexp", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeLike(String value) {
            addCriterion("code like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotLike(String value) {
            addCriterion("code not like", value, "code");
            return (Criteria) this;
        }

        public Criteria andCodeIn(List<String> values) {
            addCriterion("code in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotIn(List<String> values) {
            addCriterion("code not in", values, "code");
            return (Criteria) this;
        }

        public Criteria andCodeBetween(String value1, String value2) {
            addCriterion("code between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andCodeNotBetween(String value1, String value2) {
            addCriterion("code not between", value1, value2, "code");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeIsNull() {
            addCriterion("access_control_type is null");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeIsNotNull() {
            addCriterion("access_control_type is not null");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeEqualTo(String value) {
            addCriterion("access_control_type =", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeNotEqualTo(String value) {
            addCriterion("access_control_type <>", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeGreaterThan(String value) {
            addCriterion("access_control_type >", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeGreaterThanOrEqualTo(String value) {
            addCriterion("access_control_type >=", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeLessThan(String value) {
            addCriterion("access_control_type <", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeLessThanOrEqualTo(String value) {
            addCriterion("access_control_type <=", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeRegexp(String value) {
            addCriterion("access_control_type regexp", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeLike(String value) {
            addCriterion("access_control_type like", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeNotLike(String value) {
            addCriterion("access_control_type not like", value, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeIn(List<String> values) {
            addCriterion("access_control_type in", values, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeNotIn(List<String> values) {
            addCriterion("access_control_type not in", values, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeBetween(String value1, String value2) {
            addCriterion("access_control_type between", value1, value2, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andAccessControlTypeNotBetween(String value1, String value2) {
            addCriterion("access_control_type not between", value1, value2, "accessControlType");
            return (Criteria) this;
        }

        public Criteria andWhiteListIsNull() {
            addCriterion("white_list is null");
            return (Criteria) this;
        }

        public Criteria andWhiteListIsNotNull() {
            addCriterion("white_list is not null");
            return (Criteria) this;
        }

        public Criteria andWhiteListEqualTo(String value) {
            addCriterion("white_list =", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListNotEqualTo(String value) {
            addCriterion("white_list <>", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListGreaterThan(String value) {
            addCriterion("white_list >", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListGreaterThanOrEqualTo(String value) {
            addCriterion("white_list >=", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListLessThan(String value) {
            addCriterion("white_list <", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListLessThanOrEqualTo(String value) {
            addCriterion("white_list <=", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListRegexp(String value) {
            addCriterion("white_list regexp", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListLike(String value) {
            addCriterion("white_list like", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListNotLike(String value) {
            addCriterion("white_list not like", value, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListIn(List<String> values) {
            addCriterion("white_list in", values, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListNotIn(List<String> values) {
            addCriterion("white_list not in", values, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListBetween(String value1, String value2) {
            addCriterion("white_list between", value1, value2, "whiteList");
            return (Criteria) this;
        }

        public Criteria andWhiteListNotBetween(String value1, String value2) {
            addCriterion("white_list not between", value1, value2, "whiteList");
            return (Criteria) this;
        }

        public Criteria andOrderIsNull() {
            addCriterion("`order` is null");
            return (Criteria) this;
        }

        public Criteria andOrderIsNotNull() {
            addCriterion("`order` is not null");
            return (Criteria) this;
        }

        public Criteria andOrderEqualTo(Integer value) {
            addCriterion("`order` =", value, "order");
            return (Criteria) this;
        }

        public Criteria andOrderNotEqualTo(Integer value) {
            addCriterion("`order` <>", value, "order");
            return (Criteria) this;
        }

        public Criteria andOrderGreaterThan(Integer value) {
            addCriterion("`order` >", value, "order");
            return (Criteria) this;
        }

        public Criteria andOrderGreaterThanOrEqualTo(Integer value) {
            addCriterion("`order` >=", value, "order");
            return (Criteria) this;
        }

        public Criteria andOrderLessThan(Integer value) {
            addCriterion("`order` <", value, "order");
            return (Criteria) this;
        }

        public Criteria andOrderLessThanOrEqualTo(Integer value) {
            addCriterion("`order` <=", value, "order");
            return (Criteria) this;
        }

        public Criteria andOrderIn(List<Integer> values) {
            addCriterion("`order` in", values, "order");
            return (Criteria) this;
        }

        public Criteria andOrderNotIn(List<Integer> values) {
            addCriterion("`order` not in", values, "order");
            return (Criteria) this;
        }

        public Criteria andOrderBetween(Integer value1, Integer value2) {
            addCriterion("`order` between", value1, value2, "order");
            return (Criteria) this;
        }

        public Criteria andOrderNotBetween(Integer value1, Integer value2) {
            addCriterion("`order` not between", value1, value2, "order");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNull() {
            addCriterion("deleted is null");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNotNull() {
            addCriterion("deleted is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualTo(Byte value) {
            addCriterion("deleted =", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualTo(Byte value) {
            addCriterion("deleted <>", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThan(Byte value) {
            addCriterion("deleted >", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualTo(Byte value) {
            addCriterion("deleted >=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThan(Byte value) {
            addCriterion("deleted <", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualTo(Byte value) {
            addCriterion("deleted <=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedIn(List<Byte> values) {
            addCriterion("deleted in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotIn(List<Byte> values) {
            addCriterion("deleted not in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedBetween(Byte value1, Byte value2) {
            addCriterion("deleted between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotBetween(Byte value1, Byte value2) {
            addCriterion("deleted not between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeIsNull() {
            addCriterion("template_code is null");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeIsNotNull() {
            addCriterion("template_code is not null");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeEqualTo(String value) {
            addCriterion("template_code =", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeNotEqualTo(String value) {
            addCriterion("template_code <>", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeGreaterThan(String value) {
            addCriterion("template_code >", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeGreaterThanOrEqualTo(String value) {
            addCriterion("template_code >=", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeLessThan(String value) {
            addCriterion("template_code <", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeLessThanOrEqualTo(String value) {
            addCriterion("template_code <=", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeRegexp(String value) {
            addCriterion("template_code regexp", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeLike(String value) {
            addCriterion("template_code like", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeNotLike(String value) {
            addCriterion("template_code not like", value, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeIn(List<String> values) {
            addCriterion("template_code in", values, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeNotIn(List<String> values) {
            addCriterion("template_code not in", values, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeBetween(String value1, String value2) {
            addCriterion("template_code between", value1, value2, "templateCode");
            return (Criteria) this;
        }

        public Criteria andTemplateCodeNotBetween(String value1, String value2) {
            addCriterion("template_code not between", value1, value2, "templateCode");
            return (Criteria) this;
        }

        public Criteria andScheduleIsNull() {
            addCriterion("schedule is null");
            return (Criteria) this;
        }

        public Criteria andScheduleIsNotNull() {
            addCriterion("schedule is not null");
            return (Criteria) this;
        }

        public Criteria andScheduleEqualTo(Double value) {
            addCriterion("schedule =", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleNotEqualTo(Double value) {
            addCriterion("schedule <>", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleGreaterThan(Double value) {
            addCriterion("schedule >", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleGreaterThanOrEqualTo(Double value) {
            addCriterion("schedule >=", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleLessThan(Double value) {
            addCriterion("schedule <", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleLessThanOrEqualTo(Double value) {
            addCriterion("schedule <=", value, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleIn(List<Double> values) {
            addCriterion("schedule in", values, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleNotIn(List<Double> values) {
            addCriterion("schedule not in", values, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleBetween(Double value1, Double value2) {
            addCriterion("schedule between", value1, value2, "schedule");
            return (Criteria) this;
        }

        public Criteria andScheduleNotBetween(Double value1, Double value2) {
            addCriterion("schedule not between", value1, value2, "schedule");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(String value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(String value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(String value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(String value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(String value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(String value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeRegexp(String value) {
            addCriterion("create_time regexp", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLike(String value) {
            addCriterion("create_time like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotLike(String value) {
            addCriterion("create_time not like", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<String> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<String> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(String value1, String value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(String value1, String value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeIsNull() {
            addCriterion("organization_code is null");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeIsNotNull() {
            addCriterion("organization_code is not null");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeEqualTo(String value) {
            addCriterion("organization_code =", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeNotEqualTo(String value) {
            addCriterion("organization_code <>", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeGreaterThan(String value) {
            addCriterion("organization_code >", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeGreaterThanOrEqualTo(String value) {
            addCriterion("organization_code >=", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeLessThan(String value) {
            addCriterion("organization_code <", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeLessThanOrEqualTo(String value) {
            addCriterion("organization_code <=", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeRegexp(String value) {
            addCriterion("organization_code regexp", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeLike(String value) {
            addCriterion("organization_code like", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeNotLike(String value) {
            addCriterion("organization_code not like", value, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeIn(List<String> values) {
            addCriterion("organization_code in", values, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeNotIn(List<String> values) {
            addCriterion("organization_code not in", values, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeBetween(String value1, String value2) {
            addCriterion("organization_code between", value1, value2, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andOrganizationCodeNotBetween(String value1, String value2) {
            addCriterion("organization_code not between", value1, value2, "organizationCode");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeIsNull() {
            addCriterion("deleted_time is null");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeIsNotNull() {
            addCriterion("deleted_time is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeEqualTo(String value) {
            addCriterion("deleted_time =", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotEqualTo(String value) {
            addCriterion("deleted_time <>", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeGreaterThan(String value) {
            addCriterion("deleted_time >", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeGreaterThanOrEqualTo(String value) {
            addCriterion("deleted_time >=", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeLessThan(String value) {
            addCriterion("deleted_time <", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeLessThanOrEqualTo(String value) {
            addCriterion("deleted_time <=", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeRegexp(String value) {
            addCriterion("deleted_time regexp", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeLike(String value) {
            addCriterion("deleted_time like", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotLike(String value) {
            addCriterion("deleted_time not like", value, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeIn(List<String> values) {
            addCriterion("deleted_time in", values, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotIn(List<String> values) {
            addCriterion("deleted_time not in", values, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeBetween(String value1, String value2) {
            addCriterion("deleted_time between", value1, value2, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andDeletedTimeNotBetween(String value1, String value2) {
            addCriterion("deleted_time not between", value1, value2, "deletedTime");
            return (Criteria) this;
        }

        public Criteria andPrivateIsNull() {
            addCriterion("private is null");
            return (Criteria) this;
        }

        public Criteria andPrivateIsNotNull() {
            addCriterion("private is not null");
            return (Criteria) this;
        }

        public Criteria andPrivateEqualTo(Byte value) {
            addCriterion("private =", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateNotEqualTo(Byte value) {
            addCriterion("private <>", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateGreaterThan(Byte value) {
            addCriterion("private >", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateGreaterThanOrEqualTo(Byte value) {
            addCriterion("private >=", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateLessThan(Byte value) {
            addCriterion("private <", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateLessThanOrEqualTo(Byte value) {
            addCriterion("private <=", value, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateIn(List<Byte> values) {
            addCriterion("private in", values, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateNotIn(List<Byte> values) {
            addCriterion("private not in", values, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateBetween(Byte value1, Byte value2) {
            addCriterion("private between", value1, value2, "_private");
            return (Criteria) this;
        }

        public Criteria andPrivateNotBetween(Byte value1, Byte value2) {
            addCriterion("private not between", value1, value2, "_private");
            return (Criteria) this;
        }

        public Criteria andPrefixIsNull() {
            addCriterion("`prefix` is null");
            return (Criteria) this;
        }

        public Criteria andPrefixIsNotNull() {
            addCriterion("`prefix` is not null");
            return (Criteria) this;
        }

        public Criteria andPrefixEqualTo(String value) {
            addCriterion("`prefix` =", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixNotEqualTo(String value) {
            addCriterion("`prefix` <>", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixGreaterThan(String value) {
            addCriterion("`prefix` >", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixGreaterThanOrEqualTo(String value) {
            addCriterion("`prefix` >=", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixLessThan(String value) {
            addCriterion("`prefix` <", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixLessThanOrEqualTo(String value) {
            addCriterion("`prefix` <=", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixRegexp(String value) {
            addCriterion("`prefix` regexp", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixLike(String value) {
            addCriterion("`prefix` like", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixNotLike(String value) {
            addCriterion("`prefix` not like", value, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixIn(List<String> values) {
            addCriterion("`prefix` in", values, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixNotIn(List<String> values) {
            addCriterion("`prefix` not in", values, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixBetween(String value1, String value2) {
            addCriterion("`prefix` between", value1, value2, "prefix");
            return (Criteria) this;
        }

        public Criteria andPrefixNotBetween(String value1, String value2) {
            addCriterion("`prefix` not between", value1, value2, "prefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixIsNull() {
            addCriterion("open_prefix is null");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixIsNotNull() {
            addCriterion("open_prefix is not null");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixEqualTo(Byte value) {
            addCriterion("open_prefix =", value, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixNotEqualTo(Byte value) {
            addCriterion("open_prefix <>", value, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixGreaterThan(Byte value) {
            addCriterion("open_prefix >", value, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixGreaterThanOrEqualTo(Byte value) {
            addCriterion("open_prefix >=", value, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixLessThan(Byte value) {
            addCriterion("open_prefix <", value, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixLessThanOrEqualTo(Byte value) {
            addCriterion("open_prefix <=", value, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixIn(List<Byte> values) {
            addCriterion("open_prefix in", values, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixNotIn(List<Byte> values) {
            addCriterion("open_prefix not in", values, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixBetween(Byte value1, Byte value2) {
            addCriterion("open_prefix between", value1, value2, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andOpenPrefixNotBetween(Byte value1, Byte value2) {
            addCriterion("open_prefix not between", value1, value2, "openPrefix");
            return (Criteria) this;
        }

        public Criteria andArchiveIsNull() {
            addCriterion("archive is null");
            return (Criteria) this;
        }

        public Criteria andArchiveIsNotNull() {
            addCriterion("archive is not null");
            return (Criteria) this;
        }

        public Criteria andArchiveEqualTo(Byte value) {
            addCriterion("archive =", value, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveNotEqualTo(Byte value) {
            addCriterion("archive <>", value, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveGreaterThan(Byte value) {
            addCriterion("archive >", value, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveGreaterThanOrEqualTo(Byte value) {
            addCriterion("archive >=", value, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveLessThan(Byte value) {
            addCriterion("archive <", value, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveLessThanOrEqualTo(Byte value) {
            addCriterion("archive <=", value, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveIn(List<Byte> values) {
            addCriterion("archive in", values, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveNotIn(List<Byte> values) {
            addCriterion("archive not in", values, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveBetween(Byte value1, Byte value2) {
            addCriterion("archive between", value1, value2, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveNotBetween(Byte value1, Byte value2) {
            addCriterion("archive not between", value1, value2, "archive");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeIsNull() {
            addCriterion("archive_time is null");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeIsNotNull() {
            addCriterion("archive_time is not null");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeEqualTo(String value) {
            addCriterion("archive_time =", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeNotEqualTo(String value) {
            addCriterion("archive_time <>", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeGreaterThan(String value) {
            addCriterion("archive_time >", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeGreaterThanOrEqualTo(String value) {
            addCriterion("archive_time >=", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeLessThan(String value) {
            addCriterion("archive_time <", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeLessThanOrEqualTo(String value) {
            addCriterion("archive_time <=", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeRegexp(String value) {
            addCriterion("archive_time regexp", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeLike(String value) {
            addCriterion("archive_time like", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeNotLike(String value) {
            addCriterion("archive_time not like", value, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeIn(List<String> values) {
            addCriterion("archive_time in", values, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeNotIn(List<String> values) {
            addCriterion("archive_time not in", values, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeBetween(String value1, String value2) {
            addCriterion("archive_time between", value1, value2, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andArchiveTimeNotBetween(String value1, String value2) {
            addCriterion("archive_time not between", value1, value2, "archiveTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeIsNull() {
            addCriterion("open_begin_time is null");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeIsNotNull() {
            addCriterion("open_begin_time is not null");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeEqualTo(Byte value) {
            addCriterion("open_begin_time =", value, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeNotEqualTo(Byte value) {
            addCriterion("open_begin_time <>", value, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeGreaterThan(Byte value) {
            addCriterion("open_begin_time >", value, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeGreaterThanOrEqualTo(Byte value) {
            addCriterion("open_begin_time >=", value, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeLessThan(Byte value) {
            addCriterion("open_begin_time <", value, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeLessThanOrEqualTo(Byte value) {
            addCriterion("open_begin_time <=", value, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeIn(List<Byte> values) {
            addCriterion("open_begin_time in", values, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeNotIn(List<Byte> values) {
            addCriterion("open_begin_time not in", values, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeBetween(Byte value1, Byte value2) {
            addCriterion("open_begin_time between", value1, value2, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenBeginTimeNotBetween(Byte value1, Byte value2) {
            addCriterion("open_begin_time not between", value1, value2, "openBeginTime");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateIsNull() {
            addCriterion("open_task_private is null");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateIsNotNull() {
            addCriterion("open_task_private is not null");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateEqualTo(Byte value) {
            addCriterion("open_task_private =", value, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateNotEqualTo(Byte value) {
            addCriterion("open_task_private <>", value, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateGreaterThan(Byte value) {
            addCriterion("open_task_private >", value, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateGreaterThanOrEqualTo(Byte value) {
            addCriterion("open_task_private >=", value, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateLessThan(Byte value) {
            addCriterion("open_task_private <", value, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateLessThanOrEqualTo(Byte value) {
            addCriterion("open_task_private <=", value, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateIn(List<Byte> values) {
            addCriterion("open_task_private in", values, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateNotIn(List<Byte> values) {
            addCriterion("open_task_private not in", values, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateBetween(Byte value1, Byte value2) {
            addCriterion("open_task_private between", value1, value2, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andOpenTaskPrivateNotBetween(Byte value1, Byte value2) {
            addCriterion("open_task_private not between", value1, value2, "openTaskPrivate");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeIsNull() {
            addCriterion("task_board_theme is null");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeIsNotNull() {
            addCriterion("task_board_theme is not null");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeEqualTo(String value) {
            addCriterion("task_board_theme =", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeNotEqualTo(String value) {
            addCriterion("task_board_theme <>", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeGreaterThan(String value) {
            addCriterion("task_board_theme >", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeGreaterThanOrEqualTo(String value) {
            addCriterion("task_board_theme >=", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeLessThan(String value) {
            addCriterion("task_board_theme <", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeLessThanOrEqualTo(String value) {
            addCriterion("task_board_theme <=", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeRegexp(String value) {
            addCriterion("task_board_theme regexp", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeLike(String value) {
            addCriterion("task_board_theme like", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeNotLike(String value) {
            addCriterion("task_board_theme not like", value, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeIn(List<String> values) {
            addCriterion("task_board_theme in", values, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeNotIn(List<String> values) {
            addCriterion("task_board_theme not in", values, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeBetween(String value1, String value2) {
            addCriterion("task_board_theme between", value1, value2, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andTaskBoardThemeNotBetween(String value1, String value2) {
            addCriterion("task_board_theme not between", value1, value2, "taskBoardTheme");
            return (Criteria) this;
        }

        public Criteria andBeginTimeIsNull() {
            addCriterion("begin_time is null");
            return (Criteria) this;
        }

        public Criteria andBeginTimeIsNotNull() {
            addCriterion("begin_time is not null");
            return (Criteria) this;
        }

        public Criteria andBeginTimeEqualTo(String value) {
            addCriterion("begin_time =", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotEqualTo(String value) {
            addCriterion("begin_time <>", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeGreaterThan(String value) {
            addCriterion("begin_time >", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeGreaterThanOrEqualTo(String value) {
            addCriterion("begin_time >=", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeLessThan(String value) {
            addCriterion("begin_time <", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeLessThanOrEqualTo(String value) {
            addCriterion("begin_time <=", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeRegexp(String value) {
            addCriterion("begin_time regexp", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeLike(String value) {
            addCriterion("begin_time like", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotLike(String value) {
            addCriterion("begin_time not like", value, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeIn(List<String> values) {
            addCriterion("begin_time in", values, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotIn(List<String> values) {
            addCriterion("begin_time not in", values, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeBetween(String value1, String value2) {
            addCriterion("begin_time between", value1, value2, "beginTime");
            return (Criteria) this;
        }

        public Criteria andBeginTimeNotBetween(String value1, String value2) {
            addCriterion("begin_time not between", value1, value2, "beginTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("end_time is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("end_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(String value) {
            addCriterion("end_time =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(String value) {
            addCriterion("end_time <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(String value) {
            addCriterion("end_time >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(String value) {
            addCriterion("end_time >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(String value) {
            addCriterion("end_time <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(String value) {
            addCriterion("end_time <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeRegexp(String value) {
            addCriterion("end_time regexp", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLike(String value) {
            addCriterion("end_time like", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotLike(String value) {
            addCriterion("end_time not like", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<String> values) {
            addCriterion("end_time in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<String> values) {
            addCriterion("end_time not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(String value1, String value2) {
            addCriterion("end_time between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(String value1, String value2) {
            addCriterion("end_time not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleIsNull() {
            addCriterion("auto_update_schedule is null");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleIsNotNull() {
            addCriterion("auto_update_schedule is not null");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleEqualTo(Byte value) {
            addCriterion("auto_update_schedule =", value, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleNotEqualTo(Byte value) {
            addCriterion("auto_update_schedule <>", value, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleGreaterThan(Byte value) {
            addCriterion("auto_update_schedule >", value, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleGreaterThanOrEqualTo(Byte value) {
            addCriterion("auto_update_schedule >=", value, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleLessThan(Byte value) {
            addCriterion("auto_update_schedule <", value, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleLessThanOrEqualTo(Byte value) {
            addCriterion("auto_update_schedule <=", value, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleIn(List<Byte> values) {
            addCriterion("auto_update_schedule in", values, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleNotIn(List<Byte> values) {
            addCriterion("auto_update_schedule not in", values, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleBetween(Byte value1, Byte value2) {
            addCriterion("auto_update_schedule between", value1, value2, "autoUpdateSchedule");
            return (Criteria) this;
        }

        public Criteria andAutoUpdateScheduleNotBetween(Byte value1, Byte value2) {
            addCriterion("auto_update_schedule not between", value1, value2, "autoUpdateSchedule");
            return (Criteria) this;
        }

    }

    public static class CriteriaString {
        //id
        @JsonProperty("id")
        @JSONField(name = "id")
        private String id;

        public String getId() {
            return id;
        }
    
        public void setId(String _v) {
            id = _v;
        }

        //封面
        @JsonProperty("cover")
        @JSONField(name = "cover")
        private String cover;

        public String getCover() {
            return cover;
        }
    
        public void setCover(String _v) {
            cover = _v;
        }

        //名称
        @JsonProperty("name")
        @JSONField(name = "name")
        private String name;

        public String getName() {
            return name;
        }
    
        public void setName(String _v) {
            name = _v;
        }

        //编号
        @JsonProperty("code")
        @JSONField(name = "code")
        private String code;

        public String getCode() {
            return code;
        }
    
        public void setCode(String _v) {
            code = _v;
        }

        //访问控制l类型
        @JsonProperty("access_control_type")
        @JSONField(name = "access_control_type")
        private String accessControlType;

        public String getAccessControlType() {
            return accessControlType;
        }
    
        public void setAccessControlType(String _v) {
            accessControlType = _v;
        }

        //可以访问项目的权限组（白名单）
        @JsonProperty("white_list")
        @JSONField(name = "white_list")
        private String whiteList;

        public String getWhiteList() {
            return whiteList;
        }
    
        public void setWhiteList(String _v) {
            whiteList = _v;
        }

        //排序
        @JsonProperty("order")
        @JSONField(name = "order")
        private String order;

        public String getOrder() {
            return order;
        }
    
        public void setOrder(String _v) {
            order = _v;
        }

        //删除标记
        @JsonProperty("deleted")
        @JSONField(name = "deleted")
        private String deleted;

        public String getDeleted() {
            return deleted;
        }
    
        public void setDeleted(String _v) {
            deleted = _v;
        }

        //项目类型
        @JsonProperty("template_code")
        @JSONField(name = "template_code")
        private String templateCode;

        public String getTemplateCode() {
            return templateCode;
        }
    
        public void setTemplateCode(String _v) {
            templateCode = _v;
        }

        //进度
        @JsonProperty("schedule")
        @JSONField(name = "schedule")
        private String schedule;

        public String getSchedule() {
            return schedule;
        }
    
        public void setSchedule(String _v) {
            schedule = _v;
        }

        //创建时间
        @JsonProperty("create_time")
        @JSONField(name = "create_time")
        private String createTime;

        public String getCreateTime() {
            return createTime;
        }
    
        public void setCreateTime(String _v) {
            createTime = _v;
        }

        //组织id
        @JsonProperty("organization_code")
        @JSONField(name = "organization_code")
        private String organizationCode;

        public String getOrganizationCode() {
            return organizationCode;
        }
    
        public void setOrganizationCode(String _v) {
            organizationCode = _v;
        }

        //删除时间
        @JsonProperty("deleted_time")
        @JSONField(name = "deleted_time")
        private String deletedTime;

        public String getDeletedTime() {
            return deletedTime;
        }
    
        public void setDeletedTime(String _v) {
            deletedTime = _v;
        }

        //是否私有
        @JsonProperty("private")
        @JSONField(name = "private")
        private String _private;

        public String getPrivate() {
            return _private;
        }
    
        public void setPrivate(String _v) {
            _private = _v;
        }

        //项目前缀
        @JsonProperty("prefix")
        @JSONField(name = "prefix")
        private String prefix;

        public String getPrefix() {
            return prefix;
        }
    
        public void setPrefix(String _v) {
            prefix = _v;
        }

        //是否开启项目前缀
        @JsonProperty("open_prefix")
        @JSONField(name = "open_prefix")
        private String openPrefix;

        public String getOpenPrefix() {
            return openPrefix;
        }
    
        public void setOpenPrefix(String _v) {
            openPrefix = _v;
        }

        //是否归档
        @JsonProperty("archive")
        @JSONField(name = "archive")
        private String archive;

        public String getArchive() {
            return archive;
        }
    
        public void setArchive(String _v) {
            archive = _v;
        }

        //归档时间
        @JsonProperty("archive_time")
        @JSONField(name = "archive_time")
        private String archiveTime;

        public String getArchiveTime() {
            return archiveTime;
        }
    
        public void setArchiveTime(String _v) {
            archiveTime = _v;
        }

        //是否开启任务开始时间
        @JsonProperty("open_begin_time")
        @JSONField(name = "open_begin_time")
        private String openBeginTime;

        public String getOpenBeginTime() {
            return openBeginTime;
        }
    
        public void setOpenBeginTime(String _v) {
            openBeginTime = _v;
        }

        //是否开启新任务默认开启隐私模式
        @JsonProperty("open_task_private")
        @JSONField(name = "open_task_private")
        private String openTaskPrivate;

        public String getOpenTaskPrivate() {
            return openTaskPrivate;
        }
    
        public void setOpenTaskPrivate(String _v) {
            openTaskPrivate = _v;
        }

        //看板风格
        @JsonProperty("task_board_theme")
        @JSONField(name = "task_board_theme")
        private String taskBoardTheme;

        public String getTaskBoardTheme() {
            return taskBoardTheme;
        }
    
        public void setTaskBoardTheme(String _v) {
            taskBoardTheme = _v;
        }

        //项目开始日期
        @JsonProperty("begin_time")
        @JSONField(name = "begin_time")
        private String beginTime;

        public String getBeginTime() {
            return beginTime;
        }
    
        public void setBeginTime(String _v) {
            beginTime = _v;
        }

        //项目截止日期
        @JsonProperty("end_time")
        @JSONField(name = "end_time")
        private String endTime;

        public String getEndTime() {
            return endTime;
        }
    
        public void setEndTime(String _v) {
            endTime = _v;
        }

        //自动更新项目进度
        @JsonProperty("auto_update_schedule")
        @JSONField(name = "auto_update_schedule")
        private String autoUpdateSchedule;

        public String getAutoUpdateSchedule() {
            return autoUpdateSchedule;
        }
    
        public void setAutoUpdateSchedule(String _v) {
            autoUpdateSchedule = _v;
        }

        //描述
        @JsonProperty("description")
        @JSONField(name = "description")
        private String description;

        public String getDescription() {
            return description;
        }
    
        public void setDescription(String _v) {
            description = _v;
        }

    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }
}
